package com.ripplezjw.blog.controller.admin;

import com.ripplezjw.blog.Service.TagService;
import com.ripplezjw.blog.po.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

@Controller
@RequestMapping("/admin")
public class TagInputController {
    @Autowired
    TagService tagService;

    @GetMapping("tagInput")
    public String tagInput() {
        return "/admin/input/tagInput";
    }

    @PostMapping("tagInputTo")
    public String tagInputTo(Tag tag,
                             RedirectAttributes redirectAttributes) {
        String msg = tagService.addTag(tag);
        System.out.println(msg);
        // 插入成功
        if (msg.isEmpty()) return "redirect:/admin/tagMan";
        else {
            // 插入失败
            redirectAttributes.addFlashAttribute("tag_input_error_msg", msg);
            return "redirect:/admin/tagInput";
        }
    }

    @GetMapping("/tagDel/{tagId}")
    public String tagDel(Model model,
                         @PathVariable("tagId") int tagId) {
        tagService.clickDelTagBtn(tagId);
        return "redirect:/admin/tagMan";
    }

    @GetMapping("/tagMod/{tagId}")
    public String tagMod(@PathVariable("tagId") int tagId,
                         Model model) {
        Tag tag = tagService.clickModTagBtn(tagId);
        model.addAttribute("tag", tag);
        return "/admin/input/tagMod";
    }

    @PostMapping("/tagMod/{tagId}/to")
    public String clsModTo(@PathVariable("tagId") int tagId,
                           Tag tag,
                           RedirectAttributes redirectAttributes) {
        tag.setTagId(tagId);
        String msg = tagService.modTag(tag);
        // 更新成功
        if (msg.isEmpty()) return "redirect:/admin/tagMan";
        else {
            // 更新失败
            redirectAttributes.addFlashAttribute("tag_input_error_msg", msg);
            return "redirect:/admin/tagMod/" + tag.getTagId();
        }
    }
}
